package io;

import java.io.*;
import java.nio.charset.StandardCharsets;

/**
 * 自行创建流连接，使用PrintWriter项文件写入文本数据
 * */
public class PWDemo2 {
    public static void main(String[] args) throws FileNotFoundException {
        //文件输出流：低级流，字节流；作用：负责将 字节  写入到文件中
        FileOutputStream fos = new FileOutputStream("pw2.txt");
        /*
            字节输出流的超类:java.io.OutputStream  所有字节输出流都继承自它，像文件输出流就继承自它
            字符输出流的超类:java.io.Writer 所有字符输出流都继承自它

            转换流使用两个超类的名字组合为它的名字，意图就是传达:
            可以将字节输出流转换为字符输出流

            转换流:字符流，高级流
            作用:
            1:衔接字节流与字符流，起到转换器的作用
            2:将上层字符流写出的文本数据转换为字节后再交给下层的字节输出流写出
         */
        OutputStreamWriter osw = new OutputStreamWriter(fos, StandardCharsets.UTF_8);

        //缓冲字符输出流：字符流，高级流，作用：块写文本数据，保证写出效率
        BufferedWriter bw = new BufferedWriter(osw);
       /*
            PrintWriter:字符流，高级流
            作用:
            1:按行写出字符串
            2:具有自动行刷新功能(目前还没有使用到)
         */
        PrintWriter pw = new PrintWriter(bw);

        pw.println("大家好");
        pw.println("今天超级困");
        System.out.println("写出完毕");
        pw.close();

    }
}
